/**
 * 差旅统计信息业务逻辑处理接口类
 * @author zqd	差旅小组
 *
 * 上午10:09:14
 */
package com.cbts.service.show;

import java.util.List;
import java.util.Map;

import com.cbts.entity.CorporationMonthReport;
import com.cbts.entity.CorporationQuarterReport;
import com.cbts.entity.Department;
import com.cbts.entity.DepartmentMonthReport;
import com.cbts.entity.DepartmentQuarterReport;
import com.cbts.util.Page;

public interface ReportService {
	
	/**
	 * 获得部门id为deid的部门的该year的月报
	 * @param deid	部门id，deid为""时查找全部部门
	 * @param year	年份 ,year为null查询该部门的所有月报
	 * @return
	 */
	public List<DepartmentMonthReport> getDeMonthReport(String deid,String year);
	
	/**
	 * 获得部门id为deid的部门的该year的季报
	 * @param deid	部门id,deid为""时查找全部部门
	 * @param year	年份,year为null查询该部门的所有季报
	 * @return
	 */
	public List<DepartmentQuarterReport> getDeQuarterReport(String deid,String year);
	
	/**
	 * 获得公司该year的月报
	 * @param year
	 * @return
	 */
	public List<CorporationMonthReport> getCoMonthReport(String year);
	
	/**
	 * 获得公司该year的季报
	 * @param year
	 * @return
	 */
	public List<CorporationQuarterReport> getCoQuarterReport(String year);
	
	/**
	 * 
	 * @param type 报表的类型,0-月报,1-季报
	 * @param deid null是公司，""是全部的部门，deid是部门id
	 * @return
	 */
	public List<String> getYear(int type,String deid);
	
	/**
	 * 从数据库获得全部部门月报,返回List
	 */
	public List<DepartmentMonthReport> finadAllDepMon() ;
	/**
	 * 从数据库获得全部部门季报,返回List
	 */
	public List<DepartmentQuarterReport> finadAllDepQua() ;
	/**
	 * 从数据库获得全部公司月报,返回List
	 */
	public List<CorporationMonthReport> finadAllCorMon() ;
	/**
	 * 从数据库获得全部公司季报,返回List
	 */
	public List<CorporationQuarterReport> finadAllCorQua() ;
	
	/**
	 * 获得每个部门的节省费用表
	 * @param year
	 * @return map<部门名,saveAmountList>
	 */
	public Map<String,List<Double>> getDeSavecostingReport(String year);
}
